(function getApis() {
  return {
    "/api/laolu": {
      useDirMode: true,
    },

    "/api/jsc/queryApp/detail": {
      useDirMode: false,
      // /api/page/detail?id=0
      inject: (nameMaps) => [nameMaps.jscPage],
      body(data) {
        return {
          data: data.inject.jscPage.filter(
            (item) => item.MKID == data.params.MKID
          ),
          message: "程序会根据inject查找",
        };
      },
    },

    "/api/jsc/queryApp": {
      useDirMode: false,
      // /example/api/page?pageNum=6&pageSize=30
      name: (nameMaps) => nameMaps.jscPage,
      pageable: true,
      getData() {
        return [
          {
            SFXS: "1",
            NAME: "关键数据1",
            HEIGHT: "0",
            ID: "1",
            XH: "1",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "1",
            MS: "全年利润、营业收入、成本支出",
            TBLX: "43",
            WIDTH: "0",
          },
          {
            SFXS: "1",
            NAME: "关键数据2",
            HEIGHT: "0",
            ID: "2",
            XH: "2",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "1",
            MS: "当月手续费及佣金收入、网均利润",
            TBLX: "43",
            WIDTH: "0",
          },
          {
            SFXS: "1",
            NAME: "关键数据3",
            HEIGHT: "0",
            ID: "3",
            XH: "3",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "1",
            MS: "负债总额、资产总额、不良总额、不良率",
            TBLX: "43",
            WIDTH: "0",
          },
          {
            SFXS: "1",
            NAME: "关键数据4",
            HEIGHT: "0",
            ID: "100",
            XH: "4",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "1",
            MS: "存款客户数，贷款客户数",
            TBLX: "43",
            WIDTH: "0",
          },
          {
            SFXS: "1",
            NAME: "关键数据5",
            HEIGHT: "0",
            ID: "101",
            XH: "5",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "1",
            MS: "人均利润",
            TBLX: "43",
            WIDTH: "0",
          },
          {
            SFXS: "1",
            NAME: "营销地图",
            HEIGHT: "0",
            ID: "4",
            XH: "6",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "0",
            MS: "营销地图",
            TBLX: "14",
            WIDTH: "0",
          },
          {
            SFXS: "1",
            NAME: "主要指标任务完成率",
            HEIGHT: "0",
            ID: "5",
            XH: "7",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "1",
            MS: "主要指标任务完成率",
            TBLX: "20",
            WIDTH: "0",
          },
          {
            SFXS: "1",
            NAME: "客户存款",
            HEIGHT: "0",
            ID: "6",
            XH: "8",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "1",
            MS: "客户存款",
            TBLX: "12",
            WIDTH: "0",
          },
          {
            SFXS: "1",
            NAME: "客户贷款",
            HEIGHT: "0",
            ID: "7",
            XH: "9",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "1",
            MS: "客户贷款",
            TBLX: "12",
            WIDTH: "0",
          },
          {
            SFXS: "1",
            NAME: "不良贷款按分行排名",
            HEIGHT: "0",
            ID: "9",
            XH: "10",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "1",
            MS: "不良贷款按分行排名",
            TBLX: "31",
            WIDTH: "0",
          },
          {
            SFXS: "1",
            NAME: "客户分层结构",
            HEIGHT: "0",
            ID: "17",
            XH: "11",
            MKID: "1",
            SFSSSJ: "0",
            SFKPZ: "0",
            MS: "客户分层结构",
            TBLX: "17",
            WIDTH: "0",
          },
        ];
      },
      body(data) {
        return {
          status: 200,
          pageInfos: {
            params: {
              ...data.pageInfos.params,
              message:
                "这里的参数转换是根据defaultConfig.js=>pageSettings=>getParamMap",
            },
            wrapData: {
              ...data.pageInfos.wrapData,
              message:
                "这里包裹好的数据是根据defaultConfig.js=>pageSettings=>getWrapContext",
            },
          },
          message:
            "如果pageable为true,程序会自动获取getData里面的数据，并对其分页，然后通过参数的形式提供给body",
        };
      },
    },

    "/api/jsc/queryMk": {
      useDirMode: true,
    },

    //简单使用
    "/api/simple/object": {
      body: {
        message: "普通对象",
        color: "green",
      },
    },
    "/api/simple/null": {
      body: null,
    },
    "/api/simple/undefined": {
      body: undefined,
    },
    "/api/simple/number": {
      body: 1,
    },
    "/api/simple/string": {
      body: "字符串",
    },
    "/api/simple/array": {
      body: [1, 2, 3, 4, 5, 6],
    },
    //区分方法
    "/api/method": {
      body: {
        // get: [1, 2, 3, 4, 5, 6],
        get: {
          color: "red",
          message1: "方法指的是request支持的方法",
          message2: "返回数据支持全部简单模式",
        },
      },
      options: {
        ingoreMethod: false,
      },
    },
    //动态路径
    "/api/regexp/\\w+/\\d+$": {
      // /api/regexp/name/200
      body: {
        color: "red",
      },
      options: {
        supportRegexp: true,
      },
    },
    //获取url上的参数
    "/api/regexp/url/(\\w+)/(\\d+)$": {
      // /api/regexp/url/name/200
      body: (data) => ({
        color: "red",
        message: "会返回url上的参数",
        execResults: data.execResults,
      }),
      options: {
        supportRegexp: true,
      },
    },
    //设置HTPP 状态码
    "/api/statusCode": {
      response: {
        statusCode: 500,
      },
      body: {
        color: "red",
      },
    },
    //延迟返回
    "/api/delay": {
      response: {
        delaySeconds: 3,
      },
      body: {
        message: "这个是一个延迟返回",
      },
    },
    // json文件
    "/api/json": {
      body: "hero.json",
    },
    "/api/method/json": {
      body: {
        get: "hero.json",
      },
      options: {
        ingoreMethod: false,
      },
    },
    //函数运算
    "/api/function": {
      body: ({}) => {
        return {
          message: "可进行函数运算，除了不能再次返回函数外，其余格式都可以",
        };
      },
    },
    "/api/function/params": {
      body: (data) => {
        return {
          params: data.params,
          message: "自动解析参数并注入,可以操作request、response",
        };
      },
    },
    "/api/function/json": {
      body: (data) => {
        return "hero.json";
      },
    },
    //js文件
    "/api/js": {
      body: "able.js",
    },
    "/api/js/method": {
      body: {
        get: "able.js",
      },
      options: {
        ingoreMethod: false,
      },
    },
    //设置cookie
    "/api/cookies": {
      response: {
        getCookies(data = {}) {
          return {
            method: data.method,
            person: "mingheart",
          };
        },
      },
      body: {
        message: "其余属性程序会自动设置",
      },
    },

    //分页
    "/api/page": {
      // /example/api/page?pageNum=6&pageSize=30
      name: (nameMaps) => nameMaps.heroPage,
      pageable: true,
      getData() {
        return new Array(100).fill(1).map((item, index) => ({
          id: index,
          name: "寒冰射手" + index,
        }));
      },
      body(data) {
        return {
          status: 200,
          pageInfos: {
            params: {
              ...data.pageInfos.params,
              message:
                "这里的参数转换是根据defaultConfig.js=>pageSettings=>getParamMap",
            },
            wrapData: {
              ...data.pageInfos.wrapData,
              message:
                "这里包裹好的数据是根据defaultConfig.js=>pageSettings=>getWrapContext",
            },
          },
          message:
            "如果pageable为true,程序会自动获取getData里面的数据，并对其分页，然后通过参数的形式提供给body",
        };
      },
    },
    "/api/page/detail": {
      // /api/page/detail?id=0
      inject: (nameMaps) => [nameMaps.heroPage],
      body(data) {
        return {
          data: data.inject.heroPage.find((item) => item.id == data.params.id),
          message: "程序会根据inject查找",
        };
      },
    },
  };
})();
